<!DOCTYPE stack PUBLIC "-//Apple, Inc.//DTD stack V 2.0//EN" "" >
<stack>
<name>in.6</name>
<id>-1</id>
<cardCount>5</cardCount>
<cardID>136442</cardID>
<listID>2516</listID>
<cantModify><false /></cantModify>
<cantDelete><true /></cantDelete>
<cantAbort><false /></cantAbort>
<cardSize>
<width>512</width>
<height>342</height>
</cardSize>
<script>on openStackglobal var, fn, MarkedCard, menu1, menu2, TextArrowStatusif the version < 1.2 thenanswer "This stack needs HyperCard version 1.2."doMenu "Quit HyperCard"end ifset cursor to 4set userlevel to 5hide msgset blindTyping to trueset textArrows to falseput "off" into TextArrowStatusput NewMenu("Articles","About Ref Tracker.../?",¬"(-","Find Again/A","Store This Article/S",¬"Go to Stored Article/G",¬"(-","To Clipboard/K",¬"(-","To Disk/D","Close Disk File",¬"(-","Read In Articles/I","Write Out Articles/W") into menu1put NewMenu("Operations","Clear Special Clipboard",¬"Write Clipboard To Disk","Text Arrows/5","(-",¬"Delete This Card/L","Make A New Card/Y",¬"(-","Sort The Stack/J","Compact The Stack/U",¬"Eliminate Duplicates/E") into menu2global toBeFoundif toBeFound is empty then EnableMenu 1, 3, falseEnableMenu 1, 10, falseEnableMenu 2, 2, falseglobal screenSizeput item 2 of the screenRect into screenTopif top of card window > screenTop + 20 thenput "big" into screenSizetitleBar hideput empty into tempFieldScriptset loc of msg to 22,366elseput "small" into screenSizehide menuBarput "on mouseEnter" & return into tempFieldScriptput "show menuBar" & return after tempFieldScriptput "end mouseEnter" & return & return after tempFieldScriptput "on mouseLeave" & return after tempFieldScriptput "hide menuBar" & return after tempFieldScriptput "end mouseLeave" & return after tempFieldScriptset loc of msg to 22,300end ifset lockScreen to trueset the script of bkgnd field id 85 of cd 2 to tempFieldScriptset the name of bkgnd button id 79 of cd 2 to "Author"set hilite of bkgnd button id 88 of cd 2 to falseput empty into cd field "HoldingArea" of cd "Help Card"set lockScreen to falseput "" into varput "" into fnput the number of cds of bkgnd id 30235 into¬cd field "number of cards" of cd "Help Card"put cd field id 16 of cd "Help Card" into MarkedCardend openStackon openCardglobal tempThing, exempthide msgif the short name of this cd is "Help Card" or¬the short name of this cd is "TitleCard" or¬exempt is "Yes" thenput "No" into exemptexit openCardend ifput tempThing into bkgnd field id 80end openCardon closeCardglobal PriorCard, tempThingput the short name of this cd into PriorCardscreenCheckif the short name of this cd is "Help Card" or¬the short name of this cd is "TitleCard" thenexit closeCardend ifput bkgnd field "Thing" into tempThingput empty into bkgnd field id 80end closeCardon closeStackset cursor to 4put the number of cds of background id 30235 into¬cd field "number of cards" of cd "Help Card"global menu1, menu2put DeleteMenu(menu1) into menu1put DeleteMenu(menu2) into menu2end closeStackon enterKeysend mouseUp to bkgnd button id 81end enterKey-------------------------------------------------------------------------- The “doMenu” routines Appear Below in Alphabetical Order --------------------------------------------------------------------------on doMenu whichif which is "About Ref Tracker..." thenscreenCheckAboutRefTrackerelse if which is "Back" thenscreenCheckDoBackelse if which is "Clear Special Clipboard" thenscreenCheckclearClipelse if which is "Close Disk File" thenscreenCheckCloseDiskFileelse if which is "Compact The Stack" thenscreenCheckcompactTheStackelse if which is "Delete This Card" thenscreenCheckDoDeleteThisCardelse if which is "Eliminate Duplicates" thenscreenCheckDoDeDupelse if which is "Find..." thenscreenChecksend mouseUp to bkgnd button id 33else if which is "Find Again" thenscreenChecksend mouseUp to bkgnd button id 72else if which is "Go to Stored Article" thenscreenCheckset cursor to signalglobal MarkedCardvisual effect dissolvego to MarkedCardelse if which is "Help" thenscreenCheckAboutRefTrackerelse if which is "Last" thenscreenCheckset cursor to Signalgo to last cd of this bkgndelse if which is "Make A New Card" thenscreenCheckDoMakeNewCardelse if which is "Next" thenscreenCheckvisual effect scroll leftgo next cd of this bkgndelse if which is "Prev" thenscreenCheckvisual effect scroll rightgo prev cd of this bkgndelse if which is "Read In Articles" thenscreenCheckreadInNewArticleselse if which is "Sort The Stack" thenscreenCheckSortItelse if which is "Store This Article" thenscreenCheckset cursor to signalglobal MarkedCardput the name of this cd into MarkedCardput MarkedCard into cd field id 16 of cd "Help Card"wait 1 secondelse if which is "Text Arrows" thenscreenCheckadjustTextArrowselse if which is "To Clipboard" thenscreenChecksend mouseUp to bkgnd button id 83else if which is "To Disk" thenscreenChecksend mouseUp to bkgnd button id 40else if which is "Write Clipboard To Disk" thenscreenCheckwriteClipOutelse if which is "Write Out Articles" thenscreenCheckPreliminaryWriteOutelse if which is "MockWrite" or which is "Key Caps"¬or which is "DAleks" thenpass doMenuelsescreenCheckpass doMenuend ifend doMenu--------------------------------------------------------------------------Main Routines (other than doMenu) Appear Below in Alphabetical Order--------------------------------------------------------------------------on AboutRefTrackeranswer "Reference Tracker Version 1.6" & return &¬" January 1st, 1990" & return &¬" © 1990 by Ian Neath" & return &¬" From Owl Software" with "Help" or "Ok"if it is "Help" thensend mouseUp to bkgnd button id 41end ifend AboutRefTrackeron adjustTextArrowsglobal TextArrowStatusif TextArrowStatus is "on" thenset cursor to TAoffput "off" into TextArrowStatusset textArrows to falseCheckMenu 2, 3, falsewait 1 secelseset cursor to TAonput "on" into TextArrowStatusset textArrows to trueCheckMenu 2, 3, truewait 1 secend ifend adjustTextArrowson arrowKey whichKeyglobal TextArrowStatusif TextArrowStatus is "on" thenpass arrowKeyelseif whichKey is "up" and the optionKey is down thenset cursor to signalglobal MarkedCardput the name of this cd into MarkedCardput MarkedCard into cd field id 16 of cd "Help Card"wait 1 secondelse if whichKey is "up" and the optionKey is not down thenset cursor to signalglobal MarkedCardvisual effect dissolvego to MarkedCardelse if whichKey is "down" thenset cursor to signalglobal PriorCardif PriorCard is empty or the name of this cd is "Help Card"¬or PriorCard is "Help Card" thenexit arrowKeyelsevisual effect dissolvego to PriorCardend ifelse if whichKey is "right" thengo next cd of this bkgndelse if whichKey is "left" thengo prev cd of this bkgndend ifend ifend arrowKeyon clearClipset cursor to 4global CommInput empty into CommInput empty into cd field "HoldingArea" of cd "Help Card"EnableMenu 2, 2, falseend clearClipon closeDiskFileglobal fn, var,CommInif fn is empty thenexit closeDiskFileend ifanswer return & "Close file " & quote & fn & quote & " ?"¬with "No" or "Yes"if it is "Yes" thenput fn into tempfnput "" into fnput "" into varput "" into CommInclose file tempfnanswer "File" && quote & tempfn & quote &&¬"closed. Trying to write more information to this file will erase its contents."¬with "OK"EnableMenu 1, 10, falseend ifend closeDiskFileon compactTheStackanswer return & "About to compact the stack:" with "Cancel" or "Proceed"if it is "Proceed" thenput msg into tempput "Compacting the stack..."doMenu "Compact Stack"put temphide msgelseexit compactTheStackend ifend compactTheStackon convertJournalglobal JAif char 1 of JA is "J" thenif char 1 of JA is "J" and char 2 of JA is "E" and¬char 3 of JA is "P" thenif char 4 of JA is "," thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Experimental Psychology" before JAelse if char 4 of JA is ":" and char 7 of JA is "L" thenput "" into char 9 of JAput "" into char 8 of JAput "" into char 7 of JAput "" into char 6 of JAput "" into char 5 of JAput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Experimental Psychology: Learning, Memory and Cognition" before JAelse if char 4 of JA is ":" and char 7 of JA is "G" thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Experimental Psychology" before JAelse if char 4 of JA is ":" and char 8 of JA is "L" thenput "" into char 9 of JAput "" into char 8 of JAput "" into char 7 of JAput "" into char 6 of JAput "" into char 5 of JAput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Experimental Psychology: Human Learning and Memory" before JAelse if char 4 of JA is ":" and char 8 of JA is "P" thenput "" into char 9 of JAput "" into char 8 of JAput "" into char 7 of JAput "" into char 6 of JAput "" into char 5 of JAput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Experimental Psychology: Human Perception and Performance" before JAelse if char 4 of JA is ":" and char 7 of JA is "M" thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Experimental Psychology" before JAend ifelse if char 1 of JA is "J" and char 2 of JA is "M" thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Memory and Language" before JAelse if char 1 of JA is "J" and char 2 of JA is "V" thenput "" into char 5 of JAput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of Verbal Learning and Verbal Behavior" before JAelse if char 1 of JA is "J" and char 2 of JA is "A" and¬char 3 of JA is "S" and char 4 of JA is "A" thenput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Journal of the Acoustical Society of America" before JAend ifelse if char 1 of JA is "M" and char 2 of JA is "&" thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Memory and Cognition" before JAelse if char 1 of JA is "P" thenif char 2 of JA is "&" thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Perception and Psychophysics" before JAelse if char 7 of JA is "R" thenput "" into char 9 of JAput "" into char 8 of JAput "" into char 7 of JAput "" into char 6 of JAput "" into char 5 of JAput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Psychological Review" before JAelse if char 7 of JA is "B" thenput "" into char 10 of JAput "" into char 9 of JAput "" into char 8 of JAput "" into char 7 of JAput "" into char 6 of JAput "" into char 5 of JAput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Psychological Bulletin" before JAelse if char 2 of JA is "S" and char 3 of JA is "," thenput "" into char 2 of JAput "" into char 1 of JAput "Psychological Science" before JAend ifelse if char 1 of JA is "A" and char 2 of JA is "J" and¬char 3 of JA is "P" thenput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "American Journal of Psychology" before JAelse if char 1 of JA is "A" and char 2 of JA is "P" and¬char 3 of JA is "," thenput "" into char 2 of JAput "" into char 1 of JAput "American Psychologist" before JAelseif char 1 of JA is "Q" and char 2 of JA is "J" thenput "" into char 4 of JAput "" into char 3 of JAput "" into char 2 of JAput "" into char 1 of JAput "Quarterly Journal of Experimental Psychology" before JAend ifend ifend convertJournalon DoBackglobal PriorCardif PriorCard is empty or the name of this cd is "Help Card"¬or PriorCard is "Help Card" thenexit DoBackelseset cursor to Signalvisual effect dissolvego to PriorCardend ifend DoBackon DoDeDupanswer "Eliminate Duplicates:" & return &¬"Is the stack sorted by ‘Author’?" with "Cancel" or "No" or "Yes"if it is "Cancel" thenexit DoDeDupelse if it is "No" thenanswer return &¬"Sort cards alphabetically by ‘Author’ and then Eliminate Duplicates?"¬with "Cancel" or "Proceed"if it is not "Cancel" thensort by field "Author" & field "Title"elseexit DoDeDupend ifend ifglobal NewC, OldC, NewT, OldT, NewA, OldAput msg into tempput "Searching for possible duplicates... (Command-Period to terminate)"put the number of cds of bkgnd id 30235 into numofcardsadd -2 to numofcardsput 2 into OldCput 3 into NewCput word 1 of bkgnd field "Author" of cd OldC into OldAput word 2 of bkgnd field "Author" of cd OldC after OldAput word 5 of bkgnd field "Author" of cd OldC after OldAput word 1 of bkgnd field "Title" of cd OldC into OldTput word 4 of bkgnd field "Title" of cd OldC after OldTput last word of bkgnd field "Title" of cd OldC after OldTrepeat foreverset cursor to busyput word 1 of bkgnd field "Author" of cd NewC into NewAput word 2 of bkgnd field "Author" of cd NewC after NewAput word 5 of bkgnd field "Author" of cd NewC after NewAput word 1 of bkgnd field "Title" of cd NewC into NewTput word 4 of bkgnd field "Title" of cd NewC after NewTput last word of bkgnd field "Title" of cd NewC after NewTif NewA = OldA and NewT = OldT thenbeepgo to cd OldCanswer return & "This and the next card may be duplicates"¬with "Show Next"go to cd NewCanswer return & "Delete which card?" with "1st" or "2nd" or "Neither"if it is "1st" thengo prevDoDeleteThisCardelse if it is "2nd" thenDoDeleteThisCardend ifput msgend ifput NewC into OldCput NewA into OldAput NewT into OldTadd 1 to NewCif NewC > numofcards then exit repeatend repeatput temphide msgbeepanswer return & "End of de-duplicating." with "Ok"end DoDeDupon DoDeleteThisCardanswer return & "About to delete this card and erase all of the information permanently:"¬with "Proceed" or "Cancel"if it is "Proceed" thenset cursor to 4domenu "Delete Card"put the number of cds of bkgnd id 30235 into¬cd field "number of cards" of cd "Help Card"end ifend DoDeleteThisCardon DoMakeNewCardset cursor to 4doMenu "New Card"put "New" into bkgnd field "Status"get the short dateput it into bkgnd field id 82put the number of cds of bkgnd id 30235 into¬cd field "number of cards" of cd "Help Card"put "?" into bkgnd field id 73end DoMakeNewCardon FindItset cursor to RegFindset lockscreen to trueglobal toBeFound,howToSearch,whereToSearch,PriorCardput the name of this cd into tempPriorCardif toBeFound is empty thenEnableMenu 1, 3, falseelseEnableMenu 1, 3, trueend ifif whereToSearch is "All" and howToSearch is empty thenput "Find" && quote & toBeFound & quoteelse if whereToSearch is "All" and howToSearch is "whole" thenput "Find whole" && quote & toBeFound & quoteelse if howToSearch is empty and whereToSearch is not "All" thenput "Find" && quote & toBeFound & quote && "in field"¬&& whereToSearchelse if howToSearch is "whole" and whereToSearch is not "All" thenput "Find whole" && quote & toBeFound & quote && "in field"¬&& whereToSearchend ifhide msgtype returnif the short name of this cd is "Help Card" thengo next cdtype returnend ifif the result is not empty thenput toBeFound into bkgnd field id 80set lockScreen to falseif whereToSearch is "All" thenanswer return & "There are no occurrences of ‘" &¬toBeFound & "’ in any field." with "Ok"elseanswer return & "There are no occurrences of ‘" &¬toBeFound & "’ in the ‘" & whereToSearch & "’ field." with "Ok"end ifEnableMenu 1, 3, falseelseput toBeFound into bkgnd field id 80set lockScreen to falseglobal beenThereput the number of this cd into beenThereput tempPriorCard into PriorCardend ifend FindIton helpButton message,msglocglobal screensizeput msg into tempset cursor to Helpif msgloc is not empty and screensize is "Small" thenset loc of msg to 22,220end ifput messagerepeat while the shiftKey is downend repeatput temphide msgif screensize is "Small" then set loc of msg to 22,300end helpButtonon PreliminaryWriteOutanswer return & "Write out articles based on ‘status’ or ‘date’?"¬with "Cancel" or "Date" or "Status"if it is "Cancel" thenexit PreliminaryWriteOutelse if it is "Status" thenwriteOutNewArticleselseanswer return &¬"Is the stack sorted by date ?" with "No" or "Yes"if it is "No" thenanswer return &¬"The stack must be sorted by date for this procedure to work."¬with "Ok"exit PreliminaryWriteOutelsewriteOutByDateend ifend ifend PreliminaryWriteOuton quickFindset cursor to quickFindhide msgset lockscreen to trueglobal toBeFound,howToSearch,whereToSearch,PriorCard,beenThereif toBeFound is empty thenEnableMenu 1, 3, falseelseEnableMenu 1, 3, trueend ifset the name of bkgnd button id 79 to whereToSearchput the name of this cd into tempPriorCardput the number of this cd into beenTherego next cd of this bkgndput empty into bkgnd field id 80if howToSearch is "whole" thenput "Find whole" && quote & toBeFound & quote && "in field"¬&& whereToSearchelseput "Find" && quote & toBeFound & quote && "in field"¬&& whereToSearchend ifhide msgput bkgnd field id 80 into tempToBeFoundput empty into bkgnd field id 80type returnif the short name of this cd is "Help Card" thengo next cdtype returnend ifif the result is not empty or the number of this cd is beenThere thenput tempToBeFound into bkgnd field id 80go to tempPriorCardset lockScreen to falsebeepanswer "There are no more occurrences of ‘" &¬toBeFound & "’ in the field ‘" & whereToSearch & "’." with "Ok"EnableMenu 1, 3, falseelseput ToBeFound into bkgnd field id 80set lockScreen to falseput tempPriorCard into PriorCardend ifend quickFindon readInNewArticlesput the number of cds of bkgnd id 30235 into numofcardsput "TEXT" into typeget Filename(type)if it is empty thenexit readInNewArticleselseput it into upfend ifopen file upfrepeat foreverread from file upf until returnif it is not empty thenput it into tempDoMakeNewCardadd 1 to numofcardsput temp into field "Author"read from file upf until returnput it into field "Title"read from file upf until returnput it into field "Source"read from file upf until returnput it into field "Comments"read from file upf until returnput it into field "Keywords"put "?" into bkgnd field "Possession"elseexit repeatend ifend repeatclose file upfput "Last Update: " & the short date into cd field "LastUpdated" of cd "Help Card"answer return & "All new information read in." with "Ok"end readInNewArticleson screenCheckglobal screenSizeif screenSize is "small" thenhide menuBarend ifend screenCheckon sortItanswer return & "Sort cards by ‘Author’ or by ‘DateMade’ ?"¬with "Other" or "DateMade" or "Author"if it is "DateMade" thenput msg into tempput "Sorting by ‘DateMade’..."sort descending datetime by field "DateMade"put temphide msgexit sortItelse if it is "Author" thenput msg into tempput "Sorting by ‘Author’..."sort by field "Author" & field "Title"put temphide msgexit sortItelse if it is "Other" thenanswer return & "Sort cards by ‘Source’ or by ‘Status’ ?"¬with "Cancel" or "Source" or "Status"if it is "Source" thenput msg into tempput "Sorting by ‘Source’..."sort by field "Source"put temphide msgexit sortItelse if it is "Status" thenput msg into tempput "Sorting by ‘Status’..."sort by field "Status"put temphide msgexit sortItend ifend if